package myjava.logicaloperators;

public class Root {

   public static void main(String[] args) {

      /* prima di cominciare
       * in un costrutto condizonale come if o while ci deve essere sempre 
       * e solo una espressione che viene valutata e trasformata in un boolean 
       *
       * es: 1 < 4; c == e
       * 
       * esempi non validi sono invece
       * 
       * 4 + 5; c = "hello"
       *
       * c'e' pero' una eccezione: l'inizializzazione di un boolean
       *
       * b = true << QUESTO FUNZIONA e si puo' scrivere roba tipo : */

      boolean b;

      if (b = false) {
         System.out.println("this will never be printed");
      }

      // short circuit = passa a destra dell'operatore solo se deve!
      if ((2 % 2) == 0 && 4 < 5) {
         System.out.println("yes");
      }

      if ((2 % 2) == 1 || true) {
         System.out.println("yes");
      }

      // short circuit = valuta tutta l'espressione (ragardless of the partial results)
      if (false & (9 + 7 * 44 > 0)) {
         System.out.println("yes");
      } else {
         System.out.println("no");
      }

      if (true | (9 + 7 * 44 > 0)) {
         System.out.println("yes");
      }
   }
}